Triển khai sang hệ nhị phân Hệ thập lục phân

Khi làm việc với máy vi tính, chúng ta thường phải xử lý dữ liệu nhị phân, song xử lý con số trong hệ thập lục phân lại dễ dàng hơn so với hệ nhị phân (toàn số chỉ có 0 và 1) rất nhiều. Trong khi chúng ta thông thuộc với hệ thập phân hơn các hệ cơ số khác, việc biến đổi số từ hệ nhị phân sang hệ thập lục phân lại dễ hơn là việc biến chúng sang hệ thập phân, vì mỗi một số thập lục phân tương đương với 4 bit nhị phân (410).

Hãy thử cân nhắc việc biến đổi số 11112 sang hệ thập phân. Vì mỗi vị trí của một con số trong hệ nhị phân (cơ số 2) chỉ cho phép giá trị 0 hay 1 mà thôi, việc định giá trị của con số tại vị trí ấy, tính từ bên phải, là một việc tương đối dễ dàng:

  • 00012 = 110
  • 00102 = 210
  • 01002 = 410
  • 10002 = 810

Vì vậy:

11112 = 810 + 410 + 210 + 110
= 1510

Đây là một con tính đơn giản, nhưng cũng đã đòi hỏi bốn tính cộng, trong khi với một chút luyện tập, 11112 có thể được chuyển thẳng sang F16 mà chỉ cần một phép tính (xem Biểu thị số thập lục phân). Khi số nhị phân là một số lớn, việc đổi chúng sang số thập phân là một việc dài dòng, tẻ nhạt. Khi đổi số nhị phân sang thập lục phân, chúng ta chỉ đơn giản chia nhóm các con số thành những nhóm 4, chuyển mỗi nhóm 4 này thành một số thập lục phân, giữ nguyên vị trí tương ứng của nhóm. Ví dụ sau đây chứng tỏ việc chuyển nhị phân sang thập phân dài dòng như thế nào:

010111101011010100102 = 26214410 + 6553610 + 3276810 + 1638410 + 819210 + 204810 + 51210 + 25610 + 6410 + 1610 + 210
= 38792210

So sánh ví dụ trên với việc chuyển cùng con số sang hệ thập lục phân:

010111101011010100102 = 010111101011010100102
= 5EB5216
= 5EB5216

Chúng ta cũng có thể đổi thẳng từ hệ thập lục phân quay trở lại nhị phân như ví dụ trên.

Dùng số bát phân cũng là một cách hữu dụng để xử lý dữ liệu trong máy vi tính (nhóm 3 bit thay vì nhóm 4); song, cái lợi lớn nhất của thập lục phân so với bát phân là, để biểu thị một byte (octet), chúng ta chỉ cần đúng hai con số thập lục phân là đủ. Điều này có nghĩa là nếu chúng ta có giá trị của một word (thường là 4 byte), việc nhận ra giá trị riêng của từng byte một là một việc khá dễ dàng; ngược lại, nếu chúng ta có giá trị của từng byte một, chúng ta cũng có thể dễ dàng ráp chúng lại thành một word.

Tài liệu tham khảo

WikiPedia: Hệ thập lục phân http://www.intuitor.com/hex/ http://www.mathsisfun.com/hexadecimal-decimal-colo... http://www.pcnineoneone.com/howto/hex1.html http://acms.synonet.com/bendix/intro/bitsof.pdf http://www.thinkgeek.com/tshirts/frustrations/6596... http://www.web-colors-explained.com/hex.php http://www.engr.umd.edu/~nsw/ench250/number.htm http://www.insidereality.net/site/content/math/bas... http://leetkey.mozdev.org https://commons.wikimedia.org/wiki/Category:Hexade...